//
//  DM_BaseDao.swift
//  构建者模式_ORM_SWIFT
//
//  Created by macOS on 2017/4/25.
//  Copyright © 2017年 macOS. All rights reserved.
//

import UIKit


//万能Dao类(基类)
//T: NSObject 继承于NSObject 的泛型

//基本上 系统库 框架 都是设计泛型
class DM_BaseDao<T: NSObject>: NSObject {
    
    
    private let insertBuilder = DM_OrmSQLIndertBuilder()
    
    private var helper = DM_OrmSQLOpenHelper()
    
    
    init(helper:DM_OrmSQLOpenHelper ) {
        
        super.init()
        self.helper = helper
        
        
        
    }
    
    func insert(obj: T) -> Int {
        //获取key
        
        let className = NSStringFromClass(obj.classForCoder)
        
        if let orm =  DM_TemplateConfig.sharedInstace.ormDic[className] {
          let sql =  insertBuilder.insertIntoTableOrm(orm: orm, obj: obj).builder()
            print("--插入\(sql)")
            
            let result =  helper.getDB()?.execute(sql: sql)
            print("插入结果：\(Int(result!))")
           return Int(result!)
        }
        return 0
    }
    
    func update(obj: T) -> Int {
        return 0
    }
    
    
    //删除指定用户
    //服务器开发中, 删除用户 其实本质只是逻辑删除
    //会存在一个字段: 用于标记用户状态
    
    //我们也可以在这里 处理是否 逻辑删除 或者 物理删除
    func delete(obj: T) -> Int {
        
        return 0
    }
    
    
    //查询
    func select(obj: T) -> Array<T> {
        return Array<T>()
    }
 

}






